package io.api.modules.project.dto;

import io.admin.common.validator.group.AddGroup;
import io.admin.common.validator.group.DefaultGroup;
import io.admin.common.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.util.Date;

/**
 * 定位点
 *
 * @author Mark sunlightcs@gmail.com
 * @since 1.0.0 2024-07-09
 */
@Data
@ApiModel(value = "定位点")
public class PageAnchorDTO implements Serializable {
    private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "id")
	@Null(message="{id.null}", groups = AddGroup.class)
	@NotNull(message="{id.require}", groups = UpdateGroup.class)
	private Long id;

	@ApiModelProperty(value = "定位点名称")
	@NotBlank(message = "定位点名称不能为空", groups = DefaultGroup.class)
	private String name;

	@ApiModelProperty(value = "项目id")
	@NotNull(message = "项目id不能为空", groups = DefaultGroup.class)
	private Long projectId;

	@ApiModelProperty(value = "线路id")
	@NotNull(message = "线路id不能为空", groups = DefaultGroup.class)
	private Long lineId;

	@ApiModelProperty(value = "线路名称")
	private String lineName;

	@ApiModelProperty(value = "经度")
	@NotBlank(message = "经度不能为空", groups = DefaultGroup.class)
	private String longitude;

	@ApiModelProperty(value = "纬度")
	@NotBlank(message = "纬度不能为空", groups = DefaultGroup.class)
	private String latitude;

	@ApiModelProperty(value = "定位点排序")
	@NotNull(message = "定位点排序不能为空", groups = DefaultGroup.class)
	private Integer sort;

	@ApiModelProperty(value = "定位来源")
	@NotNull(message = "定位来源不能为空", groups = DefaultGroup.class)
	private Integer source;

	@ApiModelProperty(value = "电缆敷设方式")
	@NotBlank(message = "电缆敷设方式不能为空", groups = DefaultGroup.class)
	private String roughInType;

	@ApiModelProperty(value = "设备类型")
	@NotNull(message = "设备类型不能为空", groups = DefaultGroup.class)
	private Long equipmentTypeId;

	@ApiModelProperty(value = "设备类型")
	private String equipmentTypeUrl;

	@ApiModelProperty(value = "设备类型")
	@NotBlank(message = "设备类型名称不能为空", groups = DefaultGroup.class)
	private String equipmentTypeName;

	@ApiModelProperty(value = "备注")
	private String notes;

	@ApiModelProperty(value = "图片")
	private Long[] imageIds = new Long[0];

	@ApiModelProperty(value = "图片备注")
	private String notesImg;

	@ApiModelProperty(value = "施工开始时间")
	private Date startDate;

	@ApiModelProperty(value = "施工结束时间")
	private Date endDate;


}